using System;
using System.Collections.Generic;
using System.Text;
using NBusiness.CodeDom;

namespace NBusiness
{
    [Serializable]
	public class EntityValidationType
	{
        private string _name;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        private string _as;

        public string As
        {
            get { return _as; }
            set { _as = value; }
        }

        private string _in;
        public string In
        {
            get { return _in; }
            set { _in = value; }
        }

        private string _argument;
        public string Argument
        {
            get { return _argument; }
            set { _argument = value; }
        }

        private List<Type> _argumentParameters = new List<Type>();

        public List<Type> ArgumentParameters
        {
            get { return _argumentParameters; }
            set { _argumentParameters = value; }
        }

        public EntityValidationType() { }
        public EntityValidationType(string name, string @as, string @in, string argument, params Type[] arguments)
        {
            _name = name;
            _as = @as;
            _in = @in;
            _argument = argument;
            _argumentParameters.AddRange(arguments);
        }

        public override string ToString()
        {
            return _name;
        }
	}
}
